package com.douya.pangu.application.sys.repository;
import com.douya.pangu.application.sys.pojo.entity.es.CoreUserEsDO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.annotations.Query;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * coreUser es repository
 *
 * @Author hcy
 * @Date 2022/11/29
 */
@Repository
public interface CoreUserRepository extends ElasticsearchRepository<CoreUserEsDO, Long>
//        , BasicElasticRepository<CoreUserEsDO, Long>
{

    /**
     * 查询用户名
     *
     * @param idList 用户名
     * @return 用户信息
     */
    List<CoreUserEsDO> findAllByIdIn(List<Long> idList);

    Page<CoreUserEsDO> findAllByLoginNameLike(String loginName, Pageable pageable);

    /**
     * 用原生Query查询loginName 和 loginPassword 模糊匹配的数据
     *
     * @param loginName
     * @param loginPassword
     * @param pageable
     */
    @Query("{\"bool\":{\"must\":[{\"match\":{\"loginName\":\"?0\"}},{\"match\":{\"loginPassword\":\"?1\"}}]}}")
    Page<CoreUserEsDO> findByLoginNameAndLoginPassword(String loginName, String loginPassword, Pageable pageable);
}
